package com.lg.jvm;

/**
 * 测试动态加载
 *
 * *************load TestDynamicLoad************
 * *************load A************
 * *************initial A************
 * *************load test************
 *
 * @author Gang.Li
 * @date 2021/6/3 10:06
 */
public class TestDynamicLoad {
    static {
        System.out.println("*************load TestDynamicLoad************");
    }

    public static void main(String[] args) {
        new AA();
        System.out.println("*************load test************");
        B b = null;  //B不会加载，除非这里执行 new B(),因为在加载阶段 只会操作被访问到的类的成员方法
    }
}

class AA {
    static {
        System.out.println("*************load A************");
    }


    public AA() {
        System.out.println("*************initial A************");
    }
}

class B {
    static {
        System.out.println("*************load B************");
    }

    public B() {
        System.out.println("*************initial B************");
    }
}